package com.chinacoal.microservice.api.model.entity;

import java.io.Serializable;

import javax.validation.constraints.NotBlank;

import com.baomidou.mybatisplus.annotations.TableField;
import com.baomidou.mybatisplus.annotations.TableId;
import com.baomidou.mybatisplus.annotations.TableName;
import com.chinacoal.microservice.model.common.Entity;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.experimental.Accessors;

@Data
@EqualsAndHashCode(callSuper = false)
@Accessors(chain = true)
@TableName("ccms_utask_cat_attr_map")
@ApiModel(value="待办类型映射实体",description="待办类型映射实体")
public class UtaskCatAttrMapEntity extends Entity<UtaskCatAttrMapEntity> {

    private static final long serialVersionUID = 1L;

    @ApiModelProperty(value ="主键id", example="", required=false)
    @NotBlank(message = "更新时，主键不能为空: mapId", groups = {UpdateValid.class})
    @TableId("map_id")
    private String mapId;
    
    @ApiModelProperty(value ="待办类型ID", example="", required=true)
    @NotBlank(message = "待办类型ID不能为空: catId")
    @TableField("cat_id")
    private String catId;
    
    @ApiModelProperty(value ="待办类型扩展属性Id", example="", required=true)
    @NotBlank(message = "待办属性ID不能为空: attrId")
    @TableField("attr_id")
    private String attrId;

    @ApiModelProperty(value ="待办类型扩展属性值", example="", required=true)
    @NotBlank(message = "属性名称不能为空: attrValue")
    @TableField("attr_value")
    private String attrValue;

    @ApiModelProperty(value ="节点编码", example="", required=false)
    @TableField("activity_code")
    private String activityCode;
    
    @ApiModelProperty(value ="备用1", example="", required=false)
    @TableField("custom1")
    private String custom1;

    @ApiModelProperty(value ="备用2", example="", required=false)
    @TableField("custom2")
    private String custom2;

    @ApiModelProperty(value ="备用3", example="", required=false)
    @TableField("custom3")
    private String custom3;

    @ApiModelProperty(value ="备用4", example="", required=false)
    @TableField("custom4")
    private String custom4;

    @ApiModelProperty(value ="备用5", example="", required=false)
    @TableField("custom5")
    private String custom5;

    @ApiModelProperty(value ="应用Id", example="", required=false)
    @TableField(exist = false)
    private String sysId;
    
    @ApiModelProperty(value ="应用编码", example="", required=false)
    @TableField(exist = false)
    private String sysCode;
    
    @ApiModelProperty(value ="应用名称", example="", required=false)
    @TableField(exist = false)
    private String sysName;
    
    @ApiModelProperty(value ="待办类型编码", example="", required=false)
    @TableField(exist = false)
    private String typeCode;
    
    @ApiModelProperty(value ="待办类型名称", example="", required=false)
    @TableField(exist = false)
    private String typeName;
    
    @ApiModelProperty(value ="待办类型扩展属性编码", example="", required=false)
    @TableField(exist = false)
    private String attrCode;
    
    @ApiModelProperty(value ="待办类型扩展属性名称", example="", required=false)
    @TableField(exist = false)
    private String attrName;
    
    @Override
    protected Serializable pkVal() {
        return this.mapId;
    }

}
